package it.scambiocorse.rowmapper;

import it.scambiocorse.model.AreaType;
import it.scambiocorse.model.AutistaType;
import it.scambiocorse.model.CodaType;
import it.scambiocorse.model.ServizioJson;
import it.scambiocorse.model.ServizioType;
import it.scambiocorse.model.ClienteType;
import it.scambiocorse.model.UtenteType;
import it.scambiocorse.model.SorgenteType;


import java.sql.ResultSet;
import java.sql.SQLException;

import org.springframework.jdbc.core.RowMapper;

public class ServizioRowMapper implements RowMapper {

  public Object mapRow(ResultSet rs, int row) throws SQLException {
  	
    ServizioJson servizio = new ServizioJson();
    servizio.setIdServ(rs.getInt("id_serv"));
    
    
    servizio.setIdServUser(rs.getInt("id_serv_user"));

    servizio.setIdUserInse(rs.getInt("id_user_inse"));
    
    ClienteRowMapper cr = new ClienteRowMapper();
    servizio.setCliente((ClienteType)cr.mapRow(rs, -1));
    
    AutistaRowMapper ar = new AutistaRowMapper();
    servizio.setAutista((AutistaType)ar.mapRow(rs, -1));
    
    SorgenteRowMapper sr = new SorgenteRowMapper();
    servizio.setSorgente((SorgenteType)sr.mapRow(rs,-1));
    
    AreaRowMapper a = new AreaRowMapper();
    servizio.setArea((AreaType)a.mapRow(rs, -1));
    
    CodaType coda =(CodaType)(new CodaRowMapper().mapRow(rs, 0));
    servizio.setCoda(coda);
    
    servizio.setTipoServizio(rs.getInt("deco_tipo_serv"));
    servizio.setCitta(rs.getString("citta"));
    
    servizio.setPickUp(((rs.getString("pick_up") != null)? rs.getString("pick_up") : "" ));
    servizio.setDropOff(((rs.getString("drop_off") != null)? rs.getString("drop_off") : "" ));
    
    servizio.setDataora(rs.getTimestamp("dataora"));
    servizio.setOraFine(rs.getTimestamp("ora_fine"));
    servizio.setDataInse(rs.getTimestamp("data_inse"));
    servizio.setDataFine(rs.getTimestamp("data_fine"));

    servizio.setVeicolo(rs.getString("veicolo"));
    servizio.setPax(rs.getInt("pax"));
    servizio.setPrezzo(rs.getDouble("prezzo"));
    servizio.setOk((rs.getInt("is_ok") == 1) ? true : false);
    servizio.setNote(rs.getString("note"));
    
    servizio.setPickUpToken(((rs.getString("pick_tk") != null)? rs.getString("pick_tk") : "" ));
    servizio.setDropOffToken(((rs.getString("drop_tk") != null)? rs.getString("drop_tk") : "" ));


    servizio.setIdUserExec(rs.getInt("id_user_exec"));

    
    UtenteRowMapper ur = new UtenteRowMapper();
    servizio.setUserInse((UtenteType)ur.mapRow(rs, -1));




    
    servizio.setDare(rs.getDouble("dare"));
    servizio.setAvere(rs.getDouble("avere"));
    servizio.setCommissione(rs.getInt("commissione"));
    servizio.setOraFine(rs.getTimestamp("ora_fine"));
    servizio.setVolo(rs.getString("volo"));

    return servizio;
  }
}
